// pages/demo-c-page-omi/index.js
import member from "@src/store/member";
import base from '@src/store/base'
import { storeBindingsBehavior } from "mobx-miniprogram-bindings";
import { getMemberMineInfo, checkWxCardState, getMemberGiveConfig, getCategoryAvailable } from '@src/api/member';
const App = getApp();
import dayjs from "dayjs";
Component({
  behaviors: [storeBindingsBehavior],
  storeBindings: [
    {
      store: member,
      fields: ['isMember', 'memberName', 'categoryName', 'wxName', 'expireTime', 'wxHeadImg'],
      actions: ['getBaseInfo', 'syncWxCard'],
    },
    {
      store: base,
      fields: ['themeColor', 'myPageBanners', 'myPageBg', 'perms']
    }],

  /**
   * 组件的属性列表
   */
  properties: {

  },

  /**
   * 组件的初始数据
   */
  data: {
    barheight: (App.globalData.statusBarHeight) * 2,
    loading: true,
    bgcolor: '#f6f6f6',
    accountInfo: {},
    login: false,
    wxCardState: null,
    memberGiveConfig: {},
    expireDays: null,
    availableData: null,
  },

  /**
   * 组件生命周期
   */
  lifetimes: {
    // 生命周期函数，可以为函数，或一个在methods段中定义的方法名
    created: function (val) {
      // 在组件实例刚刚被创建时执行，注意此时不能调用 setData
      console.log("component created===>创建时执行");
    },
    attached: function (val) {
      // 在组件实例进入页面节点树时执行
      console.log("component attached===>进入页面节点树");
    },
    ready: function (val) {
      // 在组件在视图层布局完成后执行
      console.log("component ready===>布局完成");
    },
    moved: function () {
      // 在组件实例被移动到节点树另一个位置时执行
      console.log("component moved===>移动到节点树另一个位置");
    },
    detached: function () {
      // 在组件实例被从页面节点树移除时执行
      console.log("component detached===>创建时执行");
    },
  },

  /**
 * 组件所在页面生命周期
 */
  pageLifetimes: {

  },

  /**
   * 组件的方法列表
   */
  methods: {
    onLoad: function (options) {
      this.getTabBar().select("minePage")
      console.log("component page onLoad===>听页面进入", options);
      let self = this;
      setTimeout(() => {
        self.setData({
          loading: false
        })
      }, 3000)
    },
    onLogin() {
      this.setData({ login: true })
      console.log("this.data.wxHeadImg", this.data.wxHeadImg)
      this.fetchData();
    },
    onAnon() {
      // 匿名登录成功
      this.setData({ login: false })
    },
    handleLogin() {
      this.selectComponent("#login").requireLogin();
    },
    fetchData() {
      getMemberGiveConfig().then(res => {
        this.setData({ "memberGiveConfig": res.data })
      })
      getMemberMineInfo().then(res => {
        this.setData({ "accountInfo": res.data });
        console.log("accountInfo", this.data.accountInfo)
      })
      getCategoryAvailable().then(res => {
        if (this.data.expireTime) {
          let expireDays = dayjs(this.data.expireTime).diff(dayjs(res._header_.Date), 'day');
          this.setData({ expireDays, availableData: res.data })
        } else {
          this.setData({ availableData: res.data, expireDays: null })
        }
      })
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {
      console.log("component page onReady===>监听页面初次渲染完成");
    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {
      console.log("component page onShow===>监听页面显示");
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {
      console.log("component page onHide===>监听页面隐藏");
    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {
      console.log("component page onUnload===>监听页面卸载");
    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {
      console.log("component page onPullDownRefresh===>监听用户下拉动作");
    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {
      console.log("component page onReachBottom===>页面上拉触底事件的处理函数");
    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {
      console.log("component page onShareAppMessage===>用户点击右上角分享");
    },

    /**
     * 函数 方法
     */
    changeOmiIndex() {
      this.store.data.omiIndex = "我是新的store中的omiIndex"
    },

    changeOmiPageMsg() {
      this.setData({
        omiPageMsg: "我是新的data中的omiPageMsg"
      })
    }
  }
})
